package com.gym.core.common;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.base.Charsets;

/**
 * 简单编码和解码器
 *
 */
public class URLCoderUtils {

    private static final Logger logger = LoggerFactory.getLogger(URLCoderUtils.class);

    /**
     * 进行URL编码
     *
     * @param value 待编码内容
     * @return 编码内容
     */
    public static final String urlEncode(String value) {
        return urlEncode(value, Charsets.UTF_8.name());
    }

    /**
     * 进行URL编码
     *
     * @param value   待编码内容
     * @param charSet 字符集类型
     * @return 编码内容
     */
    public static final String urlEncode(String value, String charSet) {
        if (null == value) {
            return null;
        }
        try {
            return URLEncoder.encode(value, charSet);
        } catch (UnsupportedEncodingException e) {
            logger.error("url encode error", e);
            return null;
        }
    }

    /**
     * 进行URL解码
     *
     * @param value 待解码内容
     * @return 解码内容
     */
    public static final String urlDecode(String value) {
        return urlDecode(value, Charsets.UTF_8.name());
    }

    /**
     * 进行URL解码
     *
     * @param value 待解码内容
     * @return 解码内容
     */
    public static final String urlDecode(String value, String charSet) {
        if (null == value) {
            return null;
        }
        try {
            return URLDecoder.decode(value, charSet);
        } catch (UnsupportedEncodingException e) {
            logger.error("url decode error", e);
            return null;
        }
    }

}
